package com.example.app.structmodel.facade;

/**
 * 
 * @author huyang
 * Facade模式也叫外观模式，是由GoF提出的
 *	23种设计模式中的一种。Facade模式为一组具
 *	有类似功能的类群，比如类库，子系统等等，提
 *	供一个一致的简单的界面。这个一致的简单的界
 *	面被称作facade。
 *  
  *   外观模式,将具体的隐藏起来,不用关注每个细节,只调用外观对象操作的方法即可。就不用关注每个具体的细节对象。
 */
public class Facade {
	private SystemA systemA;
	private SystemB systemB;
	private SystemC systemC;
	
	public Facade() {
		this.systemA = new SystemA();
		this.systemB = new SystemB();
		this.systemC = new SystemC();
	}
	
	public void doABC() {
		this.systemA.doSomething();
		this.systemB.doSomething();
		this.systemC.doSomething();
	}
	
	public void doAB() {
		this.systemA.doSomething();
		this.systemB.doSomething();
	}
}
